package org.rafal.springframework.service;

import java.util.List;

import org.rafal.springframework.domain.App_User;

public interface App_UserService {

		/**
		 *  Find all users
		 * @return list of all users
		 */
		public List<App_User> findAll();
			
		/**
		 * Find a user  by id
		 * @param id 
		 * @return user
		 */
		public App_User findById(Long id);
		
		/**
		 * Insert or update a user
		 * @param user that will be saved or updated
		 * @return user
		 */
		public App_User save(App_User user);
		
		/**
		 * Delete a user	
		 * @param user 
		 */
		public void delete(App_User user);
		
		/**
		 * Find all users by native query 
		 * @return  all users
		 */
		public List<App_User> findAllByNativeQuery();
		
		/**
		 *  Find user by  name
		 * @param firstName
		 * @return
		 */
		public List<App_User> findByFirstName(String firstName);
}
